package com.bee.testbed;

import java.util.Arrays;

import org.apache.shiro.subject.Subject;
import org.junit.Test;

import com.bee.utils.ShiroUtil;

public class ShiroTester01 {

	@Test
	public void testHasRole() {
		Subject currentUser = ShiroUtil.login("classpath:shiro_role.ini", "xinba", "654321");

		String role = "role3";
		System.out.println(currentUser.hasRole(role) ? "有" + role + "这个角色" : "没有" + role + "这个角色");

		boolean[] results = currentUser.hasRoles(Arrays.asList("role1", "role2", "role3"));
		System.out.println(results[0] ? "有role1这个角色" : "没有role1这个角色");
		System.out.println(results[1] ? "有role2这个角色" : "没有role2这个角色");
		System.out.println(results[2] ? "有role3这个角色" : "没有role3这个角色");

		System.out.println(currentUser.hasAllRoles(Arrays.asList("role1", "role2")) ? "role1,role2这两个角色都有"
				: "role1,role2这个两个角色不全有");

		currentUser.logout();
	}

	@Test
	public void testCheckRole() {
		Subject currentUser = ShiroUtil.login("classpath:shiro_role.ini", "mufasa", "123456");

		currentUser.checkRole("role1");

		currentUser.checkRoles(Arrays.asList("role1", "role2"));

		// 不返回值，检查失败就抛出异常。
		currentUser.checkRoles("role1", "role2", "role3");

		currentUser.logout();
	}

}
